package com.schoolegard.services;

import java.util.List;

import com.schoolgard.entitybean.Catalog;
import com.schoolgard.entitybean.RolePrivilege;


public interface CatalogService {
	
	/**
     * 将所有菜单id组装成菜单实体
     * @param catalogIds
     * @return
     */
    public List<Catalog> parseCatalog(String catalogIds);
    
    /**
     * 将指定beginLevel层以后的所有菜单id组装成菜单实体
     * @param catalogIds 菜单id
     * @param beginLevel 开始层
     * @return
     */
    public List<Catalog> parseCatalog(String catalogIds , int beginLevel);
    
    /**
     * 将指定从beginLevel层到endLevel层的菜单catalogIds组装成菜单实体
     * @param catalogIds
     * @param beginLevel
     * @param endLevel
     * @return
     */
    public List<Catalog> parseCatalog(String catalogIds , int beginLevel , int endLevel);
    
    /**
     * 根据传递的层级查询出此级别的所有菜单
     * @param level 菜单节点层级，1层表示id三位
     * @return
     */
    public List<Catalog> findCatalogByLevel(int level);
    
    /**
     * 按照父ID查询所有下一级节点
     * @param parentId
     * @return
     */
    public List<Catalog> findCatalogByParentId(String parentId);
    
    /**
	 * 通过catalogId查找菜单
	 * @param catalogId
	 * @return
	 */
    public Catalog findById(String catalogId);
    
    /**
     * 保存或者更新数据，如果成功返回数据id，否则返回0
     * @return
     */
    public String saveOrUpdate(Catalog catalog);
    
    /**
     * 删除节点 如果成功返回1，否则返回0
     * @param catalog
     * @return
     */
    public int delete(Catalog catalog);
    
    /**
     * 查询角色权限
     * @param roleId
     * @return
     */
    public List<RolePrivilege> findByRoleId(Long roleId);
    /**
     * 新增或者修改RolePrivilege
     * @param roleprivilege
     */
    public void saveRolePrivilege(RolePrivilege roleprivilege);
    
    /**
     * 根据父ID查找子节点id最大的值
     * @param parentId
     * @return
     */
    public int findMaxCIdByParentId(String parentId);
	
}
